/*
 * SPDX-FileCopyrightText: 2016-2021 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: CC0-1.0
 */

#pragma once

#include <stdbool.h>
#include <stdint.h>
#include "esp_err.h"

typedef enum {
    EVENT_TYPE_ENCODER
} event_type_t;

typedef enum {
    ENCODER_ACTION_CW,
    ENCODER_ACTION_CCW,
} generic_encoder_action_t;

typedef struct {
    generic_encoder_action_t action;
} generic_encoder_event_t;

typedef struct {
    event_type_t event_type;
    union {
        generic_encoder_event_t generic_encoder;
    };
} event_t;